package controlador;

import java.awt.event.ActionEvent;
import java.awt.event.ActionListener;
import java.util.ArrayList;
import java.util.Vector;

import modelo.Laboratorio;
import modelo.LineaDeInvestigacion;
import modelo.Tematica;

import vista.VentanaLinea;
import vista.VentanaTematica;


//CLASE
public class ControladorTematica implements ActionListener{

	private VentanaTematica vt;
	private Laboratorio lab;
	
	//CONSTRUCTOR 
	public ControladorTematica(Laboratorio laboratorio) {
		vt = new VentanaTematica();
		this.lab = laboratorio;
		vt.agregarListener(this);
		vt.setVisible(true);
		vt.setLocationRelativeTo(null);
		vt.setResizable(false);
		vt.componentesHabilitados(false);
		vt.desahabilitarComponente(false);
		vt.setTxtCod(generarCodigo());
		cargarComboLinea();
		cargarListado();
		
	}

	@Override
	public void actionPerformed(ActionEvent e) {
		if (e.getActionCommand().equalsIgnoreCase("Salir")){
			vt.dispose();
		}
		else if (e.getActionCommand().equalsIgnoreCase("Crear")){
			vt.componentesHabilitados(true);
			}
		else if (e.getActionCommand().equalsIgnoreCase("Guardar")){
			guardarTematica();
			}
		
	}

	// GENERAR CODIGO
	public String generarCodigo(){
		String cod;
		int a = lab.contarLineas()+1;
		if(a < 9) {
			cod = "TE-0"+a;
			return cod;
		}
		cod = "TE-"+a;
		return cod;
	}
	
	//GUARDAR TEMATICA
	public void guardarTematica(){
		String nombrCmb = vt.getCmbLinea();
		int pos = lab.buscarLinea(nombrCmb);
		LineaDeInvestigacion li = lab.getLinea(pos);
		
		Tematica t = new Tematica();
		String cod = vt.getTxtCod();
		String nomb = vt.getTxtNombre();
		
		t.setCodigo(cod);
		t.setDescripcion(nomb);
		t.setLinea(li);
		li.agregarTematica(t);
		vt.mostrarMensaje("La Tematica Ha Sido Registrada Satisfactoriamente");
		vt.dispose();
	}
	
	//METODO CARGAR COMBO
	public void cargarComboLinea(){
		for (int i = 0; i < lab.contarLineas(); i++){
			LineaDeInvestigacion li = lab.getLinea(i);
			String nomb = li.getNombre();
			vt.agregarLineacmb(nomb);
		}
	}
	
	//CARGAR LISTADO
		public void cargarListado(){
			
			if (lab.getLineas().size() != 0){
				ArrayList<Tematica> te = new ArrayList<Tematica>();
				for(int i = 0; i< lab.getLineas().size(); i++){
					LineaDeInvestigacion li = new LineaDeInvestigacion();
					li = lab.getLinea(i);
					for(int j = 0; j< li.contarTematicas(); j++){
						Tematica tema = li.getTematica(j);
						te.add(tema);
					}
				}
				if(te.size()!=0){
					
					for (int i = 0; i< te.size(); i++){
						Tematica tema = te.get(i);
						Vector<String> aux = new Vector<String>(3,1);
						String cod = tema.getCodigo();
						String nom = tema.getDescripcion();
						String nomLinea = tema.getLinea().getNombre();
						aux.add(cod);
						aux.add(nom);
						aux.add(nomLinea);
						vt.cargarListado(aux);
				}				
			}
		}
	}
}
